/**
 * @Author: liyongxuan
 * @Date: 2018-3-15 10:00:00
 * @description：子基金管理-拟设立基金
 */
<template>
<div>
    <div class="right">
        <div class="ca-align-right ca-head-fixed">
            <el-button type="primary" @click="goInvestedFunds()" :disabled="!isNoAuth('拟投资基金-基金详情-一键转已投资')&&deleteStatusFlag==2">{{!FOF?"基金转到已设立":"基金转到已投资"}}</el-button>
        </div>
        <!-- 头部组件 -->
        <csHeader class="ca-m-t-30" :itemId="itemId" @projectMan="projectMan" @deleteStatus="deleteStatus"></csHeader>
        <!-- 基金节点 -->
        <csNode v-model="node"></csNode>
        <el-tabs v-if="FOF" type="border-card" v-model="tabIndex" class="ca-tabs ca-m-t-15" @tab-click="handleClick">
            <el-tab-pane :label="tabArr[0]" :disabled="!isNoAuth('拟投资基金-基金详情-查看')">
                <!-- 基金详情 -->
                <csRedDot slot="label" :label="tabArr[0]" :showDot="dotStateList[0]"></csRedDot>                
            </el-tab-pane>
            <el-tab-pane :label="tabArr[1]" :disabled="!isNoAuth('拟投资基金-立项-查看')">
                <!-- 立项 -->
                <csRedDot slot="label" :label="tabArr[1]" :showDot="dotStateList[1]"></csRedDot>
                <csNewProject v-if="tabIndex==1" :itemId="itemId" :proMan="proMan" :tabIndex="tabIndex-0"></csNewProject>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[2]" :disabled="!isNoAuth('拟投资基金-协议签署-查看')">
                <!-- 协议签署 -->
                <csRedDot slot="label" :label="tabArr[2]" :showDot="dotStateList[2]"></csRedDot>
                <csFundFile v-if="tabIndex==2" class="ca-m-t-15" :businessId="itemId" :tabIndex="tabIndex-0" title="协议文档" :fileType="'10068'" :isShowSearch="false" :isShowFileChildType="false" @addDot="addRedDot(tabIndex)" :addAuth="'拟投资基金-协议签署-编辑'"></csFundFile>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[3]" :disabled="!isNoAuth('拟投资基金-基金注册-查看')">
                <!-- 基金注册 -->
                <csRedDot slot="label" :label="tabArr[3]" :showDot="dotStateList[3]"></csRedDot>
                <csFundRegister v-if="tabIndex==3" :itemId="itemId" @addRedDot="addRedDot" :tabIndex="tabIndex-0"></csFundRegister>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[4]" :disabled="!isNoAuth('拟投资基金-基金打款-查看')">
                <!-- 基金打款 -->
                <csRedDot slot="label" :label="tabArr[4]" :showDot="dotStateList[4]"></csRedDot>
                <csFundPlayMoney v-if="tabIndex==4" :itemId="itemId" @addRedDot="addRedDot" :proMan="proMan" :tabIndex="tabIndex-0"></csFundPlayMoney>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[5]" :disabled="!isNoAuth('拟投资基金-基金文件-查看')">
                <!-- 基金文件 -->
                <csRedDot slot="label" :label="tabArr[5]" :showDot="dotStateList[5]"></csRedDot>
                <csFundFile v-if="tabIndex==5" title="基金文件：" :isShowFileChildType="true":tabIndex="tabIndex-0" :isEstablish="true" :businessId="itemId" :fileType="'10056'" :addAuth="'拟投资基金-基金文件-编辑'" @addDot="addRedDot(tabIndex)"></csFundFile>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[6]" :disabled="!isNoAuth('拟投资基金-合伙人-查看')">
                <!-- 合伙人 -->
                <csRedDot slot="label" :label="tabArr[6]" :showDot="dotStateList[6]"></csRedDot>
                <csFundPartner v-if="tabIndex==6" @addRedDot="addRedDot" :tabIndex="tabIndex-0"></csFundPartner>
            </el-tab-pane>
        </el-tabs>
        <el-tabs v-else type="border-card" v-model="tabIndex" class="ca-tabs ca-m-t-15" @tab-click="handleClick">
            <el-tab-pane :label="tabArr[0]" :disabled="!isNoAuth('拟投资基金-基金详情-查看')">
                <!-- 基金详情 -->
                <csRedDot slot="label" :label="tabArr[0]" :showDot="dotStateList[0]"></csRedDot>                
            </el-tab-pane>
            <el-tab-pane :label="tabArr[3]" :disabled="!isNoAuth('拟投资基金-基金注册-查看')">
                <!-- 基金注册 -->
                <csRedDot slot="label" :label="tabArr[3]" :showDot="dotStateList[1]"></csRedDot>
                <csFundRegister v-if="tabIndex==1" :itemId="itemId" @addRedDot="addRedDot" :tabIndex="tabIndex-0"></csFundRegister>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[5]" :disabled="!isNoAuth('拟投资基金-基金文件-查看')">
                <!-- 基金文件 -->
                <csRedDot slot="label" :label="tabArr[5]" :showDot="dotStateList[2]"></csRedDot>
                <csFundFile v-if="tabIndex==2" title="基金文件：" :isShowFileChildType="true":tabIndex="tabIndex-0" :isEstablish="true" :businessId="itemId" :fileType="'10056'" :addAuth="'拟投资基金-基金文件-编辑'" @addDot="addRedDot(tabIndex)"></csFundFile>
            </el-tab-pane>
            <el-tab-pane :label="tabArr[6]" :disabled="!isNoAuth('拟投资基金-合伙人-查看')">
                <!-- 合伙人 -->
                <csRedDot slot="label" :label="tabArr[6]" :showDot="dotStateList[3]"></csRedDot>
                <csFundPartner v-if="tabIndex==3" @addRedDot="addRedDot" :tabIndex="tabIndex-0"></csFundPartner>
            </el-tab-pane>
        </el-tabs>
        <!-- 基金详情 -->
        <csFundDetail v-if="tabIndex==0"></csFundDetail>
    </div>
</div>
</template>

<script>
import {
    getDetailRemind,
    read,
    addRemind,isNoAuth
} from '__service/utils';
export default {
    data() {
        return {
            deleteStatusFlag: 1,
            proMan: null,
            tabArr: ['基金详情', '立项', '协议签署', '基金注册', '基金打款', '基金文件', '合伙人'], //tab名称
            tabArrFOF: ['基金详情', '基金注册', '基金文件', '合伙人'], //tab名称
            node: this.$store.state.user.dictionaryMap.fundOthNode, // 基金节点名称
            fileType: this.$store.state.user.fileFloderDicVoList[49].type, // 基金文件类型
            itemId: this.$route.params.itemId || '',
            tabIndex: this.$route.params.tabIndex + '' || '0', //页面索引
            dotStateList: [false, false, false, false, false, false, false], // 小红点状态
        }
    },
    mounted() {
        isNoAuth('')
        this.getDotList()
        // 为子组件创建的第三方组件方法
        this.$root.Dot.$on('getDotList', () => {
            this.getDotList();
        })
    },
    beforeRouteEnter(to, from, next) {
      next( vm => {
        let tabName = vm.FOF ? vm.tabArr : vm.tabArrFOF;
            // 遍历所有tab 权限
            if (!isNoAuth('拟投资基金-' + tabName[vm.tabIndex] + '-查看')) {
              let flag = false;
              for (let i = vm.tabIndex; i < tabName.length; i++) {
                  if (isNoAuth('拟投资基金-' + tabName[i] + '-查看')) {
                      vm.tabIndex = i.toString();
                      flag = true
                      break;
                  }
              }
              if (!flag) {
                for (let i = 0; i < vm.tabIndex; i++) {
                    if (isNoAuth('拟投资基金-' + tabName[i] + '-查看')) {
                        vm.tabIndex = i.toString();
                        flag = true;
                        break;
                    }
                }
              }
              if (!flag) {
                  vm.$message({
                      message: '没有此页面的操作权限',
                      type: 'error',
                      center: true
                  });
                  vm.$router.replace({name: 'personal-center', params: {tabIndex: '0', openWindow: false}})
              }
            }
        })
    },
    methods: {
        projectMan(val) {
            this.proMan = val
        },
        deleteStatus(val) {
            this.deleteStatusFlag = val
        },
        // 基金转已投资
        goInvestedFunds() {
            this.$confirm(`是否确定将此基金转为已${this.FOF ? '投资' : '设立'}基金`, '提示', {
                cancelButtonText: '取消',
                confirmButtonText: '确定',
                type: 'warning'
            }).then(() => {
                this.$router.push({name: 'invested-fund-add',params: {establishId: this.itemId,itemId: '-1', openWindow: true}})
            })
        },

        // 添加小红点
        async addRedDot(index) {
            await addRemind({
                dataId: this.itemId, // 业务id
                dataTab: index, // tab页顺序 head 也为0 新建为'-1'
                dataType: 4, // 1拟投资项目,2已投资项目,3母基金,4拟设立基金,5已设立基金,6客户,7潜在项目
            });
            // 根据第三方组件来调用 父组件中定义的方法 重新获取小红点
            this.$root.Dot.$emit('getDotList');
            // 添加小红点 end
        },
        // 设置小红点状态
        async getDotList() {
            const dotList = await getDetailRemind({
                dataId: this.itemId,
                dataType: 4
            });
            dotList.map(x => {
                this.dotStateList[x.dataTab] = true;
            });
            this.dotStateList = this.dotStateList.concat([]);
        },
        // 切换tab
        handleClick(val) {
            //去除小红点
            read({
                dataId: this.itemId,
                dataTab: val.index,
                dataType: 4
            });
            this.dotStateList[val.index] = false;
            this.dotStateList = this.dotStateList.concat([]);
            // 设置小红点状态 end
        },
    },
    components: {
        csFundDetail: require('../fund-reserve/tab/index'), //基金详情
        csHeader: require('../fund-reserve/header/index'), //拟投资项目详情头部
        csNode: require('__components/project-node/index'), //基金节点
        csFundFile: require('__components/file-list/index'), // 基金文件
        csFundPartner: require('./tab/fund-partner/index'), // 基金合伙人
        csFundPlayMoney: require('./tab/fund-playMoney/index'), // 基金打款
        csFundRegister: require('./tab/fund-register/index'), // 基金注册
        csNewProject: require('./tab/new-project/index'), //立项
        csRedDot: require('__components/red-dot'), // 小红点
    }
}
</script>

<style rel="stylesheet/scss" lang="scss" scoped>
</style>
